2's are hard.
3's are harder.
4's are harder... in a different way.
So head's up.
Teach them the words for their feelings.
Teach them how to say it and that they can say it, to you.
Even if they are grumpy.
I taught my kids that from 2 years old. And by 3 years old my son would actually tell me (instead of tantruming about it) "Mommy, I am... frustrated... I'm going over there. I don't want anyone to bother me..."
And then he'd go in the other room, have alone time... then when he was over it, he'd come back and join us. All fine.
So in conjunction with teaching them about names for feelings, and that they can tell you... teach them coping-skills. There are so many ways, to do things, etc.
Teach them, that just because other kids are doing something, it does not mean THEY have to do it. I would, point blank say that to my kids.... from when they were Toddlers. And teaching them about situations, and ways to manage. ie: role play with them.
Kids this age: do not have, fully developed impulse control, nor the ability to have rocket-scientist reactions. So but you teach them, and in time they will master it more along with the understanding of it.
Perhaps, you 3 year old is not ready for formal group lessons.
There is the maturity of a child, and then their age-stage... and these aspects are not always synchronized.
With my kids, along with the things I mentioned above.... when disciplining or "teaching" them behavior, (because my kids are spunky/bright/smart too, like yours. Many kids are), I would just point blank, say things in the most brief and direct way possible. Not sugar coating it, not talking baby talk to them about it, not plying them with things. I would just point blank, tell them what is acceptable or not, and then the correct outcome, I expect. Because, that is what got them... back on track.
Another thing is, okay, your daughter is 3. But when a child is also TIRED or overtired or hungry... they act like this.
So, have your daughter nap. And yes, many kids this age still need a nap. Even in Preschool or Kindergarten, they nap. AND have her graze throughout the day. In addition to her meals. My daughter... especially, is susceptible to mood crashes dues to low blood sugar... when she is hungry. (even I am that way when I am hungry) ie: it means their tolerance and patience and behavior capability is nil... when they are hungry and/or tired. So, with my daughter, I have to make sure she grazes all day. To keep her even keeled. And she still eats her meals just fine. And I do this, because I know her... and I know her triggers.
You need to know your child's triggers, as well.
And when/if tired, that is also not the time to go out or do errands. If it can be helped.
Also, since your daughter is being opposite and cantankerous... I would, sit her down and have a talk with her. Don't scold... but in a "serious" big girl manner... talk to her and tell her... her actions is unacceptable. Help her to think of DIFFERENT ways to act, (even if she is grumpy), instead of lashing out. Tell her that. Tell her you and she are a TEAM. And being mean... to family and others is not acceptable. Teach her how to say things... in a more palatable way. Come up with alternative things she can do... to "signal" to you... that she is frustrated/irritated/or just not able to smile.
The thing is: discipline/punishments/boundaries are taught to a child from this age or younger... BUT, if you don't also teach them or show them ALTERNATE ways of problem-solving, they may not be "able" to do it. Because, coping-skills and problem-solving by themselves, at this age... is simply not in their sphere of natural reactions. They are not, 10 years old. So start teaching the child already, these things.
At this age, they do not have fully developed nor mastered deductive or inductive reasoning or the ability to analyze, every situation.
What I also taught my kids is: that everyone gets grumpy or frustrated, even adults. BUT, it does not mean, they have to be mean, to others about it. I don't expect them to be smiley robots everyday... BUT, they can tell me things, *WE* will problem solve it and be a team. Tell your kids when they are fussy/grumpy/frustrated "What can you do, instead of just being fussy about it?" Then see what they come up with. Make it interactive. And compliment them if they come up with a good idea. That goes in conjunction with teaching your child coping-skills and problem-solving. And in time, they will get better... at managing situations and themselves. And this will also help them deal with others... once they hit school.
Also, when/if my kids are grumpy/fussy... I will sometimes validate them first. So they know I am not "against" them. I'll say "... you really aren't happy right now, feeling grumpy huh? Mommy can see that..." And they say yah... and then they often will TELL me, why. Which a parent doesn't always know why they are grumpy. Then, we talk about it... and the different ways they can "choose" to be, instead. ie: getting it off their shoulders by telling me. Then trying to do something else. Or even just being by themselves to deflate. Kids, with siblings all the time, they need to deflate too. Just like Mommy. I have taught my kids to TELL me that as well... when they just need to deflate.