You don't need to store the +1 manager and +2 manager columns in the database because changing the manager for one employee will require updating all employees reporting to that one.
Just keep one lookup "Manager" and you can retrieve the email address of x3 level managers with a single List Rows action by using the nested expansion in the Expand Query.
In my example, I am using the out-of-the-box User table but you can replace it with the table logical name, lookup and email column names with the ones from your employee table.
This is how it would look like

Here is the sample expand query for one level manger. Basically, it means get the internalemailaddress column value of the related table of the parentsystemuserid lookup column.
parentsystemuserid($select=internalemailaddress)
Then, you can do nested expand to get x2 level.
parentsystemuserid($select=internalemailaddress;$expand=parentsystemuserid($select=internalemailaddress))
This is the parameter of the Expand Query for x3 level managers.
parentsystemuserid($select=internalemailaddress;$expand=parentsystemuserid($select=internalemailaddress;$expand=parentsystemuserid($select=internalemailaddress)))
If you are afraid to get a syntax error or not sure what to use for the lookup or email address column, you can use the FetchXML Builder for XrmToolBox tool to generate.

This is the FetchXML that I used to generate the Expand Query above.
<fetch>
<entity name='systemuser'>
<attribute name='internalemailaddress' />
<link-entity name='systemuser' from='systemuserid' to='parentsystemuserid' link-type='outer' alias='Manager1'>
<attribute name='internalemailaddress' />
<link-entity name='systemuser' from='systemuserid' to='parentsystemuserid' link-type='outer' alias='Manager2'>
<attribute name='internalemailaddress' />
<link-entity name='systemuser' from='systemuserid' to='parentsystemuserid' link-type='outer' alias='Manager3'>
<attribute name='internalemailaddress' />
</link-entity>
</link-entity>
</link-entity>
</entity>
</fetch>
In the flow, you can select the email address of the primary manager from the Dynamics Value list.

But for Manager 2 and Manager 3, you need to write an expression.

The expression would look something like this but you need to replace the lookup column and email address column with your own logical names.
Level 2
items('Apply_to_each')?['parentsystemuserid/parentsystemuserid/internalemailaddress']
Level 3
items('Apply_to_each')?['parentsystemuserid/parentsystemuserid/parentsystemuserid/internalemailaddress']
You can read more details in my blog post about it.
https://linnzawwin.blogspot.com/2020/08/get-output-data-from-expand-query-of.html#n1twolevel
Finally, when you run the flow, you can see Manager 1/2/3 Email addresses are empty for some of the users due to different reporting lines. All you need is to check if the value is empty() and send approval emails for those non-empty email addresses.
