Это называется svg sprite, надо просто дергать не через тег i, а через svg use:
https://siteok.org/blog/html/svg-sprajty
Для получения спрайта из файлов и даже встраивания в html есть куча готовых инструментов, встраивающихся в конвеер сборки, какой использовать - зависит от того, что вы используете, gulp, webpack, vite или что-то еще.
Лично я использую
https://github.com/meowtec/vite-plugin-svg-sprite так как делаю приложения с использованием vue, по ссылке выше есть вариант для gulp.