How should I understand "～长～短" phrase in English?
长 = good /strengths  ; 短 = bad/ shortcomings

"～长～短" = "～this～that"

张三李四 is similar to "any Tom, Dick or Harry"  in English, refers to any unspecific people's names. http://www.cantonese.sheik.co.uk/dictionary/words/38376/

张三长李四短 = "someone this, someone that" (gossiping)

张家长李家短 = "so and so family this, so and so family that" (gossiping)