Use SpriteDicing to split a set of sprite textures into units, discard identical ones, bake unique units into atlas textures to then seamlessly reconstruct the original sprites at runtime, without actually keeping original textures in the build.
The solution significantly reduces build size and memory usage when multiple textures with identical areas are used.
Documentation: dicing.elringus.com/guide/unity
The project is completely free and open source (MIT license) with source code hosted on GitHub: github.com/elringus/sprite-dicing