Hey, L.!
My 3 year old sprouted an attitude recently for a little while, but learned almost immediately that it wasn't allowed once we addressed it, and she's back to her sweet self. She got away with the first couple of episodes of rolling eyes, snapping at me or talking in a brand new disrespectful snippy tone, because I was so caught off guard as she had never had an attitude before that. Since it wasn't a tantrum (never allowed) or outright disobeying something (never allowed), I didn't use a quick consequence right away. However, my husband and I saw her taking the cue and doing it more often for the next couple of days, and we feared the slippery slope to bratty childness so we agreed to treat it as defiance and disrespect, which it is.
We gave her a swat the next time she said something with a bratty tone, and once more when she said, "I don't HAVE to mom." When I asked her to pick up her room. This was after we first explained to her that you don't speak to parents like that. That's all it took, since she's always been disciplined, and knew this would be no different. That was weeks ago and she's back to saying only nice things and being sweet. It's not like these were horrible offenses, but prevention is way better than waiting until things get out of hand. No one got mad at her, she just realized that would be what happened if she continued to talk that way. She prefers the positive happy norm. I've used this since she was a toddler. She's never had a full blown tantrum, and never been yelled at or made to feel bad about herself. The consequence comes way before I would try to make her "sad". We both move on immediately afterwords, no grudges or time to "reflect on her misdeeds". No bothering with charts. She only needs discipline very rarely.
Yes it's normal boundary pushing, but it's easy for your child to learn it's not acceptable if you teach them effectively.
Your husband has the right basic idea, that she needs to do what you say, because you say so, not because she decides on her terms that she sometimes feels like it after a bunch of choices and negotiating. But anger or harshness of tone doesn't have to come into it. She shouldn't learn she is doing something because someone is mad. She should learn that there is a right way to behave, and that there is simply an unpleasant consequence, delivered calmly and immediately before anything escalates, every single time, when she does something she has been clearly taught not to.
I don't use time outs, because I don't allow or ignore tantrums, so a child screaming in time out isn't an option. Counting is useless without a consequence at a certain number.
I notice you looking for positive parenting tips, so maybe you don't use spanking, but whatever you decide to use, it should be simple, consistent, and unpleasant enough where your daughter chooses to avoid it. At first because she doesn't like the outcome, but soon in the bigger picture, she has learned what isn't allowed and is proud to act the right way. You should be disciplining 2-5% of the time, not all the time. She'll sometimes try her luck at a new misbehavior as she gets older and passes through phases, like any child, but if your rules stay the same, she'll adjust quickly.
When she gets a little older, and has firm knowledge that you are in charge, you can move to the more psychological consequences instead with explanations, removed toys, being removed from fun things if she's misbehaving, etc. But at this age, you should keep it very simple, and get her used to obeying mommy.
As for positivity and choices, those are for 99% of her life, not during discipline episodes. Don't start offering choices because she starts rebelling. And if you've offered her choices about jammies or something, and she starts having a fit about her bath, give her two calm verbal requests to stop the behavior, immediately implement her consequence upon the third request, take away her pajama choice, and proceed calmly with your night. Don't get ruffled, don't back down, don't EXPLAIN at that time-she's playing for power and making you "deal" with her.
Offer her choices all the time during the day, but when she's disobeying you, you are in charge.
If you do explain yourself, do it at in a totally unrelated venue, like while you're playing together, explain that momma always chooses the best thing for her regarding her bedtime and nutrition etc and you're so proud of her for being a good girl and helping with these things. Ask her to explain what it means to go to bed and take a bath nicely etc. as a matter of normal conversation. Give her lots of praise when she says and does things right. But later on, when she is in the middle of a tantrum, remind her calmly twice to stop the wrong behavior, and then deliver a consequence. If you are consistent and calm, she will catch on extremely quickly.
And watch out-she obviously knows you're the pushover! Get on the same page with your husband, whatever method you decide. Good luck!