A function is an associator rules, in this case between numbers. This means that a function receives an input, and gives a rule to compute the output, in terms of that inuput.
For example, if you define #g(x) = 2x-5#, it means that you're defining a function, named #g#, which works as follows: you give a certain number #x# to #g# as input, and it returns twice that number (#2x#) minus five #-5#.
This works for any number you can think of: if you give #10# as input to #g#, it will return twice that number (so #20#) minus five (so #15#).
This means that when you write something like #g(3)#, you want to evaluate that function for that explicit input. You are asking: what happens if I give #3# as input to #g#?
Well, #g# behaves always in the same way: it will return twice the number you gave it, minus five.
In this case, the number we gave it is #3#, so the output will be #2*3 - 5 = 6-5 = 1#
The same goes for #h#, except it is a different function, and thus follows different rules. So, since #h(x) = 4x+5#, the behaviour of #h# will be returning four times the number you gave it, plus five.
Again, we want to compute #h(3)#, which means that the output is #4*3+5 = 12+5 = 17#
Finally, we want to compute #g(3)-h(3)#, but we already computed both numbers, so we can translate
#g(3)-h(3) = 1-17 = -16#