It is not enough. You have to spend coins to a different post-fork address on both chains.
Even that's not enough.
An automated replay attacker can still broadcast the transactions from the BTC chain and the B2X chain on the opposite chain. There exists a risk that either transaction will confirm on the chain that you don't have the private keys for. It depends which transaction the miner who mines those transaction sees first, which is not necessarily going to be your intended transactions with the correct addresses.
No, it is enough But indeed it is not easy to make sure the coins land on different chains.
Suppose you own keys K0, K1, and K2. K0 correspond to inputs pre-fork. If you send K0->K1 on chain 1 and K0->K2 on chain 2, they will be protected if both are confirmed on the respective chains (baring reorganizations). After including in the blockchains, if you send K1, they will not be recognized on chain 2 and K2 on chain 1 because no coins exists on these addresses on the other chain.
Reorganizations may wreck havoc to this plan though and I would wait at least a few dozen of blocks before sending coins to addresses I do not control.
Of course if you send K0->K1 on chain 1 and K0->K2 on chain 2, you may end up with K1 on both chains or K2 on both chains. In this case, rinse and repeat with another pair of keys you own. Except for the fees, there is no harm doing it many times.
The article I linked shows how to increase the chance of successful coin split with Locktime.