I think everybody is overthinking this expression. It is reasonable to think “something missing from a whole” (e.g. intelligence, etc...); but if you don’t think it that much it can easily be interpreted as being almost drink and acting as such. Pretty much with a six pack of beers drank a a somewhat fast rate, drunkness will occur and you will behave accordingly. By saying “you are two cans short of a six pack” means you are acting weirdly almost to the piont as behaving as being drunk.