Site A has a Mikrotik router and can ping site B (cloud provider 1) and can also ping Site C (cloud provider 2) but I am not able to ping from site B to site C and vice versa.
I’m not sure what information is needed to shed more light on the issue but I will try to provide as much as I can if requested.
You need to set routing as probably router B does not know anything about route to C.
It should know that network C is located behind router A so packets to LAN C should be statically sent to A which knows what to do with them as LAN C is connected to router A. If router B has no information about router C then it sends packets to it’s default gateway which is supposed to know where LAN C is. I doubt if it knows it.
Analogously … router C should be configured with static route to A for packets with subnet of router B.
You can avoid static routing and for eg. configure RIP protocol on routers A, B, C to let them exchange routing tables automatically.
If you reconfigure subnets then this info will be propagated to routers exchanging RIP routes.