First thank you for everything you do for this country!
Secondly have your tried giving options, my daughter is 3 and she wants to have independence. So I give her options but they are options that I want her to do example "do you want to wear the blue or pink shirt" I try to do this many things even when making meals "do you want peas or corn" when I ask her to clean up I say "do you want to start by cleaning up the horses or stuff animals" or even when getting ready to leave "do you want to wear your pink or purple coat."
This way she is choosing a majority of what she does through out the day. THEN when there is something that we must do and no options can be given my daughter usually does as told because she has had "freedom" through the day.
She is also showing that she misses you through her actions so when she is being good give plenty of positive reinforcement and hugs. Hopefully that will encourage her to be less defiant.
When my 3 year old daughter talks back to me even after giving her an option we do time outs. I have a specific spot that is the time out spot she stays there for five minutes or until she is ready to do what I asked her... after a week of this she has been less defiant when asked to do something. We also have the rule 'if you are going to throw a fit go to your room and do it because I do not want to hear it,' this helps reinforce that fits, bad attitude, complaining are not a good things and does not get you your way.
I like the toy time out one of the moms mentione, never heard of that before BUT I am sooo going to try it :) We have tried we are throwing it away but sometimes hard to follow through on when you know you spent mom on the toy!