Afaik you can not restrict access on a branch level in Mendix: if you have access to the code, you have full access. This means every developer is able to merge anything at any time and create branches. The way to manage this is by guidelines and procedures, so everyone knows your way of working.
In general i would recommend using branches only where technically necessary. Having a branch per developer would only be my first choice under very specific circumstances: merge conflicts are likely to arise and they may be tricky to solve.
With a team of three developers, working in the same branch would be my initial choice. This can work very well, as long as all developers test their work before committing.
I hope this helps.