How to make objects not pass through each other when animating
You can use the Soft body modifier after you animated the general movement.

https://docs.blender.org/manual/en/dev/physics/soft_body/index.html

https://www.youtube.com/watch?v=ofIi4ddHGW0

https://www.youtube.com/watch?v=uZHmo3iH4cE