load balancing is a beast that you should take on later, the conceptual basis of the fail over is easier, there is 2 ways, the one is to make all the devices part of a routing protocol, like using ospf or bgp, the second would be to use an device as gateway, and let that device decide what device to use for the next data stream, you can research nth type load balancing with connection tracking, a lot of people have success with that, otherwise you will just use the /ip route function, and have 3 x 0.0.0.0/0 routes but with different paths.
0.0.0.0/0 wireless(ip) distance=10 check=ping
0.0.0.0/0 adsl(ip) distance=20 check=ping
0.0.0.0/0 3g(ip) distance=30 check=ping
then if something fails then we can just power it down.
If this helped you then please slam that Karma