There are basically three ways to make computer chips smaller. One is to make transistors smaller, another is to make chips with fewer transistors and a third possibility is to use software to make chips more efficient.
Placing fewer transistors on chips allows for smaller chips. This is practical for some applications but impractical for others. Fewer transistors makes chips slower but not every application requires a huge amount of processing power. As we move to an "internet of things", there will be many devices which require very little processing power and for which issues such as power consumption and size may actually be more important than raw number crunching ability.
One can fit more transistors on a chip, but that starts running into several physical limitations, including quantum tunneling and problems of heat build-up. The size of atoms becomes a hard limit for transistor size.
Finally, chips can be designed to be smaller and more efficient if they are optimized for specific applications. This won't work for general purpose chips used in cell phones or PCs, but could have applications for chips used for other applications such as facial recognition or data centers. The problem with special-purpose chips is that they will have a lower sales volume than general purpose ones, increasing their price.