Technically 66 blocks between the centers of the villages could be enough but that can cause problems when you are far away and only half of one of the villages is loaded (that moves the center so the villages merge).
Here's how minecraft villages work roughly, if you're interested.
Each tick, the game does the following steps:
Take the list of all new doors. All villagers add doors to the list that are not part of a village already, they do that roughly every 3 seconds, but at most every 6 seconds.
If a door is already part of a village, its idle timer gets reset.
Process these doors:
Take a door
Find the closest village whose border is within 32 blocks of this door.
Add this door to thát village and update the center of the village accordingly
repeat until no doors are left in the list.
Go over all villages:
Find all doors in given village whose idle timer is higher than 60 seconds.
Remove these doors from the village and update the center accordingly.
Knowing these steps allows you to do some crazy things with villages.
The 66 blocks rule comes from step 2.2. By default, a village border is 32 blocks, but it cán be bigger in specific circumstances. So you take 32 blocks from the center to the border and then another 32 from the border to your first door. Add a block or 2, just to be safe and you get 66 blocks.
A village border can be bigger than 32 blocks if the farthest door from the village center is more than 32 blocks away. So the border radius of a village is MAX(32, distance_to_farthest_door).