The simple answer is teach your son his place.
He is not you. He doesn't get to decide what you do. You are going to have to let him cry, throw his tantrum (take him to his room, leave him there until he's done), or whatever he does until he learns he does not get to tell you what to do.
I'm a bit concerned with who you think is the boss. The word "allowed" is used in your post. "he won't allow me to"... Please, try to erase those words from your vocabulary. Change them to "he misbehaves when I tie my hair up"... this is misbehaving, pure and simple.
You will have to be very, very firm in changing your own behaviors. You say he's happy, but he's not. Three year olds given this much control over other people's bodies-- they become monsters very quickly and if not addressed now, this is only going to become worse and far more detrimental in his relationships as he gets older.
Preschool would be a good start. It normalizes the idea of rules. At preschool, no one is 'special' and there are the same rules for everyone. That's something every kid must learn. In fact, Vindhya, I'll tell you something many of us don't really believe, but here it is:
Our kids WANT us to be in charge. They get their way, but there are no boundaries, which can feel very out of control for a child. They aren't prepared to care for themselves and be in charge. Think about it, if you were working in an office and every time you went to work, your boss had no clear-cut rules about your work and won't even tell you WHAT you are supposed to be working ON. That would be a confusing and overwhelming experience even for an adult, yet that is exactly what's happening in your house.
Your kid is telling you what to do instead of receiving guidance and direction. Start now.
At meals, put his food down in front of him and eat your own. You are not to feed him, especially not before you eat. Let him sit at the table all afternoon. DO NOT FEED HIM LIKE A BABY.
When he complains about hair/glasses just say "well, this is what I need to do" and move on. If he cries, "It's too bad you are so sad about my hair. Come find me when you are done crying." and go about your business. We pay this no mind. Ignore the nagging or tell him "you may stop nagging or you may go play in your room. I'm all done listening to this." Be firm and march him to his room if need be.
Go do what you need to do. You need breaks, mom. If he can't deal with you checking your phone or laptop, then he needs to go play in his room.
Create a daily routine which he can rely on, and then go from there. It is not good for children to be played with constantly. My own son is an only child and although we parents sometimes feel a little bad that they have no siblings to play with, it is important for children to learn to amuse themselves. That is how they learn and develop their problem-solving skills. So, set aside a couple times a day that you can regularly play with him so he can count on that. (if you make these the same times each day he can predict/anticipate when that time will come.)
Your child needs loving boundaries from you and your husband. Start today-- it only gets harder the longer bad habits are allowed to set in.