Я бы сделал с помощью библиотеки lodash: 
zip(...chunk(arr, 3));
 Руками же это делается как-то так: 
function spread(arr, count = 3) {
  const result = Array.from({length: count}, () => []);
  
  for(let i = 0; i < arr.length;) {
    for(let j = 0; j < count; j++) {
      result[j].push(arr[i++]);
    }
  }
  
  return result;
}