Как получить локальную переменную одной функции в другой?

создать переменные до вызова функции, а в самой функции присваивать значения?

Это скорее всего будет работать в вашем  случае, но вообще подход в корне не правильный.

Что вам мешает получать те же данные прямо в обработчике клика?

function takeInfo() {
 let x = 0;
 let y = 1;
 let z = 2;
 return { x, y, z }
}

document.querySelector('.but').onclick = function() {
  let {x, y, z} = takeInfo();
  console.log(x, y, z)
}
Вынеси переменные за функцию и сможешь вызывать или же при помощи return