The most common cause of this is that the straps are set to the wrong height. It's a myth that they can't get out if they are tight enough, because children can indeed get out of a 5 point harness if they especially want to - all they need to do is suck in their tummy and it creates a gap that they can exploit to push their arms through. You should check tightness, but most common is actually the incorrect height.
Note that even if everything is 100% correct it is still possible for children to get out, but it is more difficult for them. Something that is not fitted correctly is possibly also more likely to make them want to escape as they may be uncomfortable - but simply being restrained is enough to vex many 3 year olds!
It is worth checking that he is not too tall or heavy for the harness that you have. This sometimes happens especially in the cheaper seats which are sold in Asda, Halfords, etc. If you have one of those then it might be worth looking at replacing it entirely. If you have one from a reputable brand like Britax, Maxi Cosi etc then simply check that it is at the right height for him. To find the right position, if the seat has a headrest + straps that are adjusted together, move it up until the headrest is just resting on his shoulders, if the straps are adjusted separately, then you should get him to sit in the seat and work out which slot his shoulders are closest to, and move the harness to these. If he is between two, go for the one above, if he is forward facing. If you have a Joie seat sometimes those are a little different but the above is correct for the majority of car seats out there.
If you do decide to replace then you have the choice of the impact shield type seats as someone above explained, or if you have one of the cheaper, budget seats then sometimes a more premium brand with a better designed 5 point harness can work fine. Again, double check his height and weight before you buy and then check any height/weight limits on the chosen seat as these are usually different for the harness mode vs seatbelt mode, and this is not always clear.
If you wanted to stick with the seat that you have, definitely check correct fitting of the harness but there are also products you can buy to add to the harness to make it less easy to escape - 5 point plus, which wraps around the side and blocks the gaps, or Besafe belt collector which just holds the belts together in the centre and again makes it tricky to escape. You can also use both together, if absolutely necessary. It's not ideal to add a third party product but these two are the least likely to interfere with the workings of the seat and are definitely safer than an unrestrained child.
The straps just being around the waist is actually not really much better than no restraint at all - because this will put a lot of strain on the internal organs as you state, it also allows far too much forward movement risking head injuries from the seat in front, it is really very dangerous. I will share a crash test video but be warned it is not very nice. (The long strap in front of the child is just a measurement device and is not part of the seat). This is a simulated crash at 30mph. The car seat is installed correctly apart from the dummy not having its arms in the harness.