I tend to give my DS1 (3.4, sturdy build but also as tall as many 4-5 year olds) the kind of portion sizes suggested on the website you read. So, for example, a packet of crisps lasts him 3 days, as I give him 1/3 one day, then put the rest in a tub to be divided over 2 more days. He will have this as part of a lunch comprising sandwich (2 slices bread), 1 thick slice of cucumber & a slice of ham/sausage & sometimes half a mini pork pie or a chunk of cheese. Pudding will often be a fromage frais or a handful of grapes/fruit flakes/raisins.
With your other example, if we (myself, DH & DS) are all eating together, DS will have the 'end' of a piece of fish from each of us (probably about 1/4 of each piece), supplemented with a good dollop of mash & about 3-4 dessert spoons of baked beans/veg. He will then have a pudding, such as 2/3 banana & custard (DS2 gets the other 1/3 banana!) or about 1/3 tin of rice pudding with a spoon of fruit, or maybe a fromage frais.
We also tend to make a fun-size packet of buttons last a week or so, as he will get about 5 at a time - enough for it to feel like a treat, but not too many, IMO!
Of course, if we are with friends/at grandparents' house/out for the day etc, he can & will have more, but we keep an eye on things!