A solution using dplyr and tidyr.
First, let's create an example data frame. This data frame contains T1 and T3 data from two participants A and B.
# Set the seed for reproducibility
set.seed(123)
# Create an example data frame
dt <- data.frame(ID = 1:10,
                 A_T1 = runif(10),
                 A_T3 = runif(10),
                 B_T1 = runif(10),
                 B_T3 = runif(10))
dt
#     ID      A_T1       A_T3      B_T1       B_T3
#  1   1 0.2875775 0.95683335 0.8895393 0.96302423
#  2   2 0.7883051 0.45333416 0.6928034 0.90229905
#  3   3 0.4089769 0.67757064 0.6405068 0.69070528
#  4   4 0.8830174 0.57263340 0.9942698 0.79546742
#  5   5 0.9404673 0.10292468 0.6557058 0.02461368
#  6   6 0.0455565 0.89982497 0.7085305 0.47779597
#  7   7 0.5281055 0.24608773 0.5440660 0.75845954
#  8   8 0.8924190 0.04205953 0.5941420 0.21640794
#  9   9 0.5514350 0.32792072 0.2891597 0.31818101
# 10  10 0.4566147 0.95450365 0.1471136 0.23162579
We can use dplyr and tidyr to convert the data frame from wide format to long format and perform the operation. Diff is the difference between T1 and T3.
# Load packages
library(dplyr)
library(tidyr)
dt2 <- dt %>%
  gather(Column, Value, -ID) %>%
  separate(Column, into = c("Participant", "Group")) %>%
  spread(Group, Value) %>%
  mutate(Diff = T1 - T3)
dt2
#    ID Participant        T1         T3        Diff
# 1   1           A 0.2875775 0.95683335 -0.66925583
# 2   1           B 0.8895393 0.96302423 -0.07348492
# 3   2           A 0.7883051 0.45333416  0.33497098
# 4   2           B 0.6928034 0.90229905 -0.20949564
# 5   3           A 0.4089769 0.67757064 -0.26859371
# 6   3           B 0.6405068 0.69070528 -0.05019846
# 7   4           A 0.8830174 0.57263340  0.31038400
# 8   4           B 0.9942698 0.79546742  0.19880236
# 9   5           A 0.9404673 0.10292468  0.83754260
# 10  5           B 0.6557058 0.02461368  0.63109211
# 11  6           A 0.0455565 0.89982497 -0.85426847
# 12  6           B 0.7085305 0.47779597  0.23073450
# 13  7           A 0.5281055 0.24608773  0.28201775
# 14  7           B 0.5440660 0.75845954 -0.21439351
# 15  8           A 0.8924190 0.04205953  0.85035951
# 16  8           B 0.5941420 0.21640794  0.37773408
# 17  9           A 0.5514350 0.32792072  0.22351430
# 18  9           B 0.2891597 0.31818101 -0.02902127
# 19 10           A 0.4566147 0.95450365 -0.49788891
# 20 10           B 0.1471136 0.23162579 -0.08451214
If the original format is desirable, we can further spread the data frame to the original format. 
dt3 <- dt2 %>%
  select(-starts_with("T")) %>%
  spread(Participant, Diff)
dt3
#    ID          A           B
# 1   1 -0.6692558 -0.07348492
# 2   2  0.3349710 -0.20949564
# 3   3 -0.2685937 -0.05019846
# 4   4  0.3103840  0.19880236
# 5   5  0.8375426  0.63109211
# 6   6 -0.8542685  0.23073450
# 7   7  0.2820178 -0.21439351
# 8   8  0.8503595  0.37773408
# 9   9  0.2235143 -0.02902127
# 10 10 -0.4978889 -0.08451214