I understand why we add or subtract from $f(x)$ to move the graph vertically. To move it up, we move all the values up by adding whatever constant value we want.
However, when it comes to horizontal shifting, we do the opposite, why is it so? Obviously I can understand how to do so (by plotting the values or using a graphing calculator, simple!). But what is the logic behind it. What if I forget how to use the other two methods and have to literally shift instead of plotting individual values of $(x, f(x))$?
One way to think about it is like roots of an equation. Take for example the factored quadratic $(x-3)(x-2)=0$. We know that the two roots are $x=3$ and $x=2$ if we isolate each linear term and solve each for $x$. The similarity with roots and horizontal shifts is the negative value. A positive root will be expressed as a negative in its associated linear factor, and it is the same concept for horizontal shifts. If we were to solve for the $x$-intercepts of some (shifted) function, we would be isolating linear factors and solving in the same way, thus the negative is required to shift along the positive $x$-axis.
Granted, this isn't a technical explanation, but one that might make some sense intuitively.