You're right P.. This is a control issue. You and your son have gotten into a power struggle. In a power struggle the kid always wins. So I'd suggest that you back off and completely ignore whether or not he says please. Ignoring unwanted behaviour is one way of getting rid of that behaviour. I learned that in a parenting class and it has worked for me.
You might feel that you're giving in but you're not. You are just recognizing that what you are doing isn't working. You might try telling him something to the affect that saying please is an important word but you see that he doesn't want to say please and so you'll leave it up to him when he wants to be a big boy and say please.
By doing that you've gracefully backed out of what you're doing and given him an incentive to say it on his own. If you don't care if he says please than it won't be important for him not to say it. And he wants to be a big boy so he'll say it. He'll no doubt test you, maybe for several days but if you can just hang in there and show a neutral face he'll say please.
At 3 he won't always remember to say it, just as adults don't always remember to say it. If you don't make a big deal of it he'll get more consistent in using it.
He is testing how much power he has and when you respond he feels more powerful. By ignoring it the word is no longer a way to feel powerful.
That was a difficult concept for me to learn. In fact I only recently learned to ignore my adult daughter's angry remarks and we are getting along much better. Yes, her remarks were disrespectful but she was getting something out of my telling her to stop. When I stopped the responding it stopped her reward, whatever it was.
Good luck to you. Toddler's test boundaries and get us into power struggles before we even realize it. They do it all over again in the teen years. I wish I'd known what I know now then.