So you have:
(s1.t1 t1 left outer join s2.t2 t2 on (t1.id = t2.id)) left outer join s2.t3 t3 on (t2.id2 = t3.id2)
And you need:
s1.t1 t1 left outer join (s2.t2 t2 left outer join s2.t3 t3 on (t2.id2 = t3.id2)) on (t1.id = t2.id)
That is allowable assuming that the join predicates are not satisfiable for null values (which is true here with the equi-joins). Unfortunately we aren't yet looking to perform this reordering. Can you log an issue for that?
I've added an initial commit, but will likely refine this a little more. So this will be included in Teiid 8.12 CR1.