If by 3 Mb bundle size you mean the initial bundle - you can optimize it way more than 100 Kb 🙂. One of the ways is to scope services to the modules where they are actually being used in.
Also, I want to mention that the whole idea of the article is on how apps should be developed to achieve best performance. It’s not the same as saying that everyone should go now and refactor. I know production realities and that it’s not the first priority. However, if considered it when app was being developed - there wouldn’t be such issue in the end. It’s all about design and thinking upfront. Unfortunately, Angular team did not put the info about SharedModules in a clear way and I too used to have them a lot and this hurt the performance.