Your geometry could afford to have a much lower poly-count. For instance, the file uniform-epaulettes-9.5cm-button-thread-right.json is half a megabyte, and has 6,190 vertices, but it could be significantly smaller if you rendered the stitching with bumpMaps or normalMaps instead of actual geometry.
See this example employs that method: the geometry is simple, and the bump-map adds a lot of detail to keep the filesize and polycount small.

If you decide to go this way and spend some time simplifying your geometry, I recommend RetopoFlow for Blender: https://blendermarket.com/products/retopoflow it’s super intuitive and easy to use.