My daughter is also almost 3 and this happens to us as well. It is "normal" for a 3 year old to test limits and melt down when their expectations aren't met. If you think about it, not getting exactly what you want IS frustrating when your goal is to maintain 100% control all of the time... (which is what 3 year olds want, right?)
You can help her learn that 1. we can't always have everything we want, 2. even if you cry, I'm still going to say no, and 3. her learning to calm herself down after said meltdown is a great skill to have.
When my daughter goes into meltdown mode, I help her go into her room, NOT as a punishment, but because it is her neutral safe place to be by herself. She can cry, scream, whatever she needs to do in order to calm herself down. When she is calm, we talk about it. "You wanted ____ but you couldn't have it and that made you mad." Validating her feelings is SO important because children DO feel those emotions. And it is okay to feel mad/frustrated/angry/sad, but it doesn't mean she gets what she wants...
I also find that when my daughter is tired or hungry, the meltdowns are more likely to happen. Not sure if you see that pattern or not, but keeping a consistent routine of eating small meals and snacks throughout the day has seriously helped a TON!