The max gate threshold voltage of the BTA16 is only 1.7V so, from a voltage point of view, it would be considered a "logic level" device. However, it does need more current than you'll safely be able to get from most uController pins.
But I think your main problem is that the BTA16 only triggers in three of the four quadrants, and the missing quadrant is one of the two you are using. So, at best, you can only guarantee triggering 50% of the time. Kind of like a half wave rectifier. That would explain why you're only getting ~ half the output voltage you expect.
So, you need to change your circuit connections around a bit. This will drive the triacs in quadrants 2 and 3.
1) Make MT1 of your three triacs common hot.
2) Tie the +5V rail of your low voltage power supply to MT1 (This makes 'logic ground' 5V negative with respect to MT1)
3) Drive each of your three triac gates with a common emmiter NPN transistor to give you current gain. Add a gate to collector resistor to limit the gate current to ~50mA
And, as has been said.
4) Pulse the gates with at least 50mA for ~100uS immediately following zero crossing.
Now, I understand that you feel that what you are trying to do does not need zero crossing, but it will give you the ability to properly give each of your three triacs a brief, healthy pulse without exceeding your 70mA supply limit.
P.S.
You now have at least three threads with different questions, but are on the same project. It is better to keep them in the same thread, instead of multiple threads. Especially when new questions build upon info that has already been covered in previous questions and answers. Members who join in down the line can have access to the previous discussions.
Info for this reply came from
https://www.onsemi.com/pub_link/Collateral/BTA16-600CW3-D.PDF