Dude, both characters have an advantage on Mario. Olimar can outcamp you and his ridiculous priority makes the match frustrating especially when you're fighting someone that can use Olimar well. Olimar counters Mario. Same goes for Pikachu. His aerial priority's decent. His aerial attacks are fast and he's just a really annoying character to fight against with his F-smash, D-smash, lightning, and U-smash.
Monk covered Olimar, so I deleted my Olimar advice.
To fight Pikachu, you'll need to be very careful of his D-smash. I've played against Ussi's Pikachu and he likes that attack a lot. What you can do is just DI upward and left or right to just suffer 6% of the attack if it's first used uncharged. You can punish it with F-smash when spaced properly. U-tilt combos work against Pikachu. If Pikachu air-dodges out of it, wait for his invincibility to disappear and use bair if he's at high damage or uair to juggle him if his damage is moderate. If Pikachu spams his Thunder Jolt, just use fireballs and cape. You can even use FLUDD to beat it out. Just keep doing this while simultaneouly getting closer and closer to him. If Pikachu uses Thunder, space yourself properly and do an F-smash. I've done this before on a Pikachu I've faced when I made an epic comeback. If Pikachu uses Skull Bash, cape him at the right time or just FLUDD him to shorten the distance. His aerials are a pain, though. I think you can actually bair him while Pikachu does his fair. Make sure to use Dair in this battle, too. It comes out very quick and can get you out of sticky situations. Nair comes in handy at well since it's also a quick attack and can be used for a jab lock set-up and for D-smash. Use jab->grab or jab->D-smash. Comes in handy.
I hope this advice has helped you.
