McKay, who was released by St Johnstone earlier this week, has signed a two-year contract with their Scottish Premiership rivals.
Cole, also 23, has joined on loan from English Championship club Fulham until January.
He has made one appearance for Fulham, coming off the bench in a 2-2 draw with Manchester United in February 2014.
Capped at England under-19 and under-20 level, he made 34 appearances last season on loan at Shrewsbury Town.
McKay signed for Saints from Hearts last summer but ended last season on loan to Dunfermline Athletic.
St Johnstone manager Tommy Wright had made the decision after signing Richard Foster from Ross County.
"It's never an easy decision to release players, but our situation is that, with early-season injuries to Tom Scobbie and Keith Watson, I needed to bring in a full-back and particularly a full-back who can play equally well on both sides of the pitch and I've gained that by signing Richard Foster," he said.
"It has simply been a case that, to get one player in, one had to be released and I feel that, with Steven Anderson fit, Liam Gordon available and Ally Gilchrist coming back from injury, plus the fact that Keith Watson can play in the middle of defence if required, we have more than enough cover and unfortunately I didn't see Brad playing regularly."
McKay, who played 18 times as Dunfermline won League One last season, made only six appearances for St Johnstone, three of them during the current campaign.
Inverness Caledonian Thistle have signed defender Brad McKay and midfielder Larnell Cole.