There is no silver bullet..
1) LN only works when you transact with someone
more than once. AND you have to lock up all the funds you might wish to use before hand. It's cool but certainly not as nice as just using btc straight up. My weekly poker group will love it though..

2) Sidechains
do not get the security of the main chain.. They have to run on whatever the side chain dictates. POS / POW / Delegated etc . That's how the exchanges are currently using their sidechain from blockstream (fully delegated). So unless you want to use a new POW / less secure / not-decentralized / POS variant / DPOS etc etc side chains are also not a 1to1 alternative to using btc straight up. Obviously the 2 way peg is nice, but as DooMAD has already mentioned we are about to see full atomic cross chain transfers between BTC to alt coins very soon (which will be JUST AS SECURE as a sidechain and trustless to boot) so that's not something overly special either..
There is only 1 solution I can think of..
We need to 'prune' bitcoin properly. Then running a full node will be something you can easily do on your phone. Seriously.
Mentioned it here,
https://bitcointalksearch.org/topic/m.13119659 The size of the UTXO set is a 'tiny' 1GB.
http://statoshi.info/dashboard/db/unspent-transaction-output-set , and more importantly it grows very slowly.
At 144MB per day (with each block full at current 1mb limit), that's 30x144 = 4.3GB / month of TXNs being fired around the network. (I download more than that in an evening watching netflix..)
These are the
only bits that matter.
I have mucked about with the 'pruning mode' in the latest BTCore, and if I may, it just doesn't go far enough.. No disrespect, it's lovely work, but we're just scratching the surface.
I need to be able to run a full, validating, independent node, without any SPV-ness, with around 2GB of space, and my current mid-tier internet connection.
That's it.
(Discard the un-needed, only put the hash of txn in blocks, put the UTXO merkle root hash in the block, store the UTXO as a new weird dataset type, scrape the spam-dust off and give it to the miners, use a proof-chain (just block headers with valid POW) instead of storing the whole block.. etc etc blah blah.. )
Then this whole 'big block' issue will become a non-issue. And we can all keep using Bitcoin the way we want to use it. Directly.