I really like "logical consequences". This is when you choose to do something as a result of the child's behavior that is related to what they've done. It's not specifically a punishment, the way hitting them or grounding them might be, but it makes some sort of sense.
Take the example of putting the toys away. When my kids were that age, toys were kept in boxes on low shelves in the living room. There were higher shelves the kids couldn't reach. I told them that I didn't always have time to put their toys away, and they should really be the ones to do it. "If I put them away," I said, "I will put them up high, and only bring them down on days I have time to clean them up." Eventually came a day when the toys were not put away and I put them up high. Later they asked to get them down. "Not right now, because I don't have time to clean them up later." "But we'll clean them up!" "You might, but you don't always, and I can't be sure." Then a short time later I got the toys down for them and reminded them "if you put them away, you can always get them back out again when you want them." This worked. They mostly put them away when they were done. (No-one is perfect.) They developed the habit, and they wanted to be the ones in control of that part of their lives.
In contrast, "do that right now because I am yelling at you" or "do that right now or else I will hit you, put you in timeout, or take something from you" never worked for us. I hated it when I heard other parents say "I see you have chosen to go to your room for a while" and carry them away while the child screamed "Nooooo! Don't wanna!!! Stay heeeeere!". That approach seemed to involve pretending not to care about the child's feelings. It also didn't feel like it gave the child control.
Some logical consequences I have used starting as young as two:
- if we can get out the door in the next five minutes there is time to stop at the park on the way, if not we will have to go straight there
- if you tidy this up while I tidy that up, we will have time to play [something specific] together afterwards but if I have to do it all I will not have time to play
- if you can't talk to me politely right now please don't talk to me until you can
- if you make your lunch you can choose what fruit goes in it
- if you get dressed yourself you can choose your own socks. Or if you come over here to the dresser and root around in it you can choose your own socks.
This way instead of being a begging servant "ok sweetie, you hate the blue socks, no problem, would you possibly consent to wearing these lovely green socks, no of course not how foolish of me, would these be ok?" or a tyrant "dammit this is my house and I paid for all these socks and you will wear the ones I choose" you can instead put the control in the child's hands (you probably don't care which socks she wears as long as she wears some) and take some of the effort and burden off yourself.
Give them control, and more relaxed play time together, in exchange for taking on some of the work of their life. (You would rather play with her than argue with her, right? Playing with your kids is a major reward of being a parent.)